home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / var / lib / dpkg / info / popularity-contest.postinst < prev    next >
Text File  |  2009-06-16  |  4KB  |  134 lines

  1. #!/bin/sh
  2.  
  3. # Load debconf variables
  4. . /usr/share/debconf/confmodule
  5.  
  6. conffile=/etc/popularity-contest.conf
  7.  
  8. set -e
  9.  
  10. if [ -e $conffile ] ; then
  11.     # Fetch current values.
  12.     . $conffile
  13. fi
  14.  
  15. # Get this setting from debconf.  It was set based on the content of
  16. # /etc/popularity-contest.conf in the 'config' script, so it should be
  17. # safe to ignore the value fetched by loading the file above.  This
  18. # should allow for using debconf to reconfigure the package.
  19. db_get popularity-contest/participate || true
  20. if [ "$RET" = "yes" ] || [ "$RET" = "YES" ] || [ "$RET" = "true" ]; then
  21.     PARTICIPATE="yes"
  22. else
  23.     PARTICIPATE="no"
  24. fi
  25.  
  26. # The md5 sum of an empty file
  27. EMPTYID="d41d8cd98f00b204e9800998ecf8427e"
  28.  
  29. generate_id() {
  30.         if [ -x /usr/bin/uuidgen ] ; then
  31.                 MY_HOSTID=`uuidgen | tr -d -`
  32.         else
  33.             MY_HOSTID=`dd if=/dev/urandom bs=1k count=1 2>/dev/null | md5sum | sed 's/  -//'''`
  34.         fi
  35. }
  36.  
  37. # Select a random day to submit on, to spread the load over time, unless it is already set.
  38. select_random_day() {
  39.         DAY=`bash -c 'echo $(($RANDOM % 7))'`
  40. }
  41.  
  42. generate_conffile() {
  43.         generate_id
  44.     select_random_day
  45.     cat <<-EOF >$conffile
  46.         # Config file for Debian's popularity-contest package.
  47.         #
  48.         # To change this file, use:
  49.         #        dpkg-reconfigure popularity-contest
  50.         #
  51.         # You can also edit it by hand, if you so choose.
  52.         #
  53.         # See /usr/share/popularity-contest/default.conf for more info
  54.         # on the options.
  55.         
  56.         MY_HOSTID="$MY_HOSTID"
  57.         PARTICIPATE="$PARTICIPATE"
  58.         USEHTTP="yes"
  59.         DAY="$DAY"
  60.     EOF
  61.  
  62.     # preseeding is only allowed on first time install
  63.     db_get popularity-contest/submiturls || true
  64.     if [ -n "$RET" ] ; then
  65.         echo "SUBMITURLS=\"$RET\"" >> $conffile
  66.     fi
  67.  
  68.     # Make sure user nobody can read the file.
  69.     chmod a+r $conffile
  70. }
  71.  
  72. case "$1" in
  73.     configure)
  74.     if [ ! -e $conffile ]; then
  75.         generate_conffile
  76.     else
  77.         # If MY_HOSTID is not set, add it.  This is useful when disk images are prepared
  78.         if [ -z "$MY_HOSTID" ] ; then
  79.             generate_id
  80.             echo "MY_HOSTID=\"$MY_HOSTID\"" >> $conffile
  81.         fi
  82.  
  83.             OLDHOSTID="$MY_HOSTID";
  84.             case "$MY_HOSTID" in
  85.             # Workaround for bug #237874 triggered on hurd.  The
  86.             # problem was fixed in version 1.15, 2004-03-20.
  87.  
  88.               $EMPTYID) generate_id;;
  89.             # Workaround for bug #240603 triggered by md5sums change
  90.             # of behaviour with stdin. version 1.17, 2004-04-12.
  91.               *-)  MY_HOSTID="${MY_HOSTID%  -}";;
  92.             esac;
  93.  
  94.         # If DAY is not set, add it.
  95.         if [ -z "$DAY" ] ; then
  96.             select_random_day
  97.             echo "DAY=\"$DAY\"" >> $conffile
  98.         fi
  99.  
  100.         # Replace only if the content changed, to avoid changing the
  101.         # config file date when no change was done.
  102.  
  103.         # Commenting out the obsolete addresses, to use the
  104.         # default config from /usr/share/ on hosts where
  105.         # the old default was unchanged.  Replace the "empty" id.
  106.  
  107.         sedopts=" \
  108.         s/^PARTICIPATE=.*$/PARTICIPATE=\"$PARTICIPATE\"/;   \
  109.         s/^\(MAILTO=\"erich-survey@debian.org\"\)$/#\1/;    \
  110.         s/^\(MAILTO=\"apenwarr-survey@debian.org\"\)$/#\1/; \
  111.         s/^\(MAILTO=\"survey@popcon.debian.org\"\)$/#\1/;   \
  112.                 "
  113.             if [ "$OLDHOSTID" != "$MY_HOSTID" ]; then
  114.                 sedopts="$sedopts \
  115.                 s/^MY_HOSTID=\"\\?$OLDHOSTID\"\\?/MY_HOSTID=\"$MY_HOSTID\"/; \
  116.         "
  117.             fi
  118.  
  119.         if sed "$sedopts" < $conffile > $conffile.new &&
  120.         ! cmp $conffile $conffile.new > /dev/null; then
  121.         mv $conffile.new $conffile
  122.         # Make sure user nobody can read the file.
  123.         chmod a+r $conffile
  124.         else
  125.         rm $conffile.new
  126.         fi
  127.     fi
  128.     ;;
  129.     *)
  130.     ;;
  131. esac
  132.  
  133.  
  134.